abstract class Animal {
    protected String name;
    protected String kind;
    protected String breed;
    protected double price;
    public Animal(String name, String kind, String breed, double price) {
        this.name = name;
        this.kind = kind;
        this.breed = breed;
        this.price = price;
    }
    public abstract void eat();

    public abstract void sleep();

    public abstract void play();

    public abstract void call();
}
class Cat extends Animal {
    public Cat(String name, String kind, String breed, double price) {
        super(name, kind, breed, price);
    }
    @Override
    public void eat() {
        System.out.println(name + "这只猫在吃饭。");
    }
    @Override
    public void sleep() {
        System.out.println(name + "这只猫在睡觉。");
    }
    @Override
    public void play() {
        System.out.println(name + "这只猫在玩耍。");
        call();
    }
    @Override
    public void call() {
        System.out.println(name + "这只猫在喵喵叫。");
    }
}
class Dog extends Animal {
    public Dog(String name, String kind, String breed, double price) {
        super(name, kind, breed, price);
    }
    @Override
    public void eat() {
        System.out.println(name + "这只狗在吃饭。");
    }
    @Override
    public void sleep() {
        System.out.println(name + "这只狗在睡觉。");
    }
    @Override
    public void play() {
        System.out.println(name + "这只狗在玩耍。");
    }
    @Override
    public void call() {
        System.out.println(name + "这只狗在汪汪叫。");
    }
}
public class Main {
    public static void main(String[] args) {
        Cat cat1 = new Cat("Tom", "Cat", "Persian", 500);
        Cat cat2 = new Cat("Jerry", "Cat", "Siamese", 450);
        Dog dog1 = new Dog("Buddy", "Dog", "Labrador", 800);
        Dog dog2 = new Dog("Max", "Dog", "Golden Retriever", 750);
        cat1.play();
        cat2.eat();
        cat2.sleep();
        dog1.play();
        dog2.call();
    }
}